package Controller;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Bean.Users_Bean;
import Model.ServiceFactory;
import myUtils.MyUtilss;

public class LoginServlet extends HttpServlet{

	
    /**
	 * 取消类名中的叹号
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//对客户端进行请求处理（可以代替doGet和doPost）
		
		//调用Model层进行客户端请求的响应处理
		System.out.println("你好，这里是LoginServlet.java，已接收到客户端发送的请求-----");
		MyUtilss.logger_console.debug("你好，这里是LoginServlet.java，已接收到客户端发送的请求-----");
		
		
		//使用request的getParameter方法获取前台页面的表单数据---getParameter获取的是控件的name属性
		String strUseName=req.getParameter("username");
		String strUsePsw=req.getParameter("password");
		
		MyUtilss.logger_console.debug("登录用户名："+strUseName);
		
		Users_Bean useB=new Users_Bean();
		useB.setUser_name(strUseName);
		useB.setUser_psw(strUsePsw);
		
		//登录验证
//		boolean isLog=ServiceFactory.getLoginServiceInstance().isLogined(useB);
		//使用过滤器进行登录验证
		List<Users_Bean> lstUse=ServiceFactory.getLoginServiceInstance().isLogined2(useB);
		
		
		
		//登录失败跳转页面
		String strPage="LoginServlet.jsp";
//		if(isLog){
//			//登录成功跳转页面
//			strPage="Logined/Logined.jsp";
//		}
//		//使用session将控制层的数据传递到前台页面，使用el表达式进行解析
//		req.getSession().setAttribute("loginedUsersB",useB);//第一个参数为
//		//使用forward进行页面跳转
//		req.getRequestDispatcher(strPage).forward(req, resp);
		
		
		//根据登录验证结果进行页面跳转
		if(lstUse!=null&&lstUse.size()>0){
			//登录成功
			MyUtilss.logger_rootLogger.info(useB.getUser_name()+"登录成功！");
			strPage="Logined/Logined.jsp";
			//使用session将控制层的数据传递到前台页面，使用el表达式进行解析
			req.getSession().setAttribute("loginedUsersB", lstUse.get(0));
		}
		
		req.getRequestDispatcher(strPage).forward(req, resp);
	}

	@Override
	public void destroy() {
		// servlet销毁时的处理
		super.destroy();
	}

	@Override
	public void init() throws ServletException {
		// servlet初始化时的处理
		super.init();
	}

}
